#ifndef __ARRAY_H__
#define __ARRAY_H__


class Array
{
private:
    int  m_position;    // 数据总长度
    int  m_length;      // 数组总空间大小
    int* m_data;        // 指针
public:
    Array(int size = 10);
    Array(const Array &arr);
    ~Array();

    int size();
    int capacity() const;

    bool empty();

    // 获取数据
    int at(int index);
    int front();                            // 数组第一个数据
    int back();                             // 数组最后一个数据

    // 插入数据
    void push_front(int data);              // 从数组头部插入
    void push_back(int data);               // 从数组尾部插入
    void insert(int pos, int data);         // 从数组指定位置插入一个数据
    void insert(int pos, const Array& arr); // 从数组指定位置插入一段数据

    // 删除数据
    void pop_front();                       // 删除头部一个数据
    void pop_back();                        // 删除尾部一个数据
    void remove(int pos);                   // 删除指定位置一个数据
    void remove(int pos, int len);          // 删除指定位置一断数据
};


#endif